メイン コーダーズルーム【スクリプト系】
ローディングの際、読込状況パーセントを表示する方法について | 投稿するにはまず登録を |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
| 投稿者 | スレッド |
|---|---|
| miyaryu | Åê¹ÆNo.42992 投稿日時: 2009-7-23 0:15 |
常連 ![]() ![]() 居住地: 投稿: 79
使用環境:
windowsXP,flash CS4 |
ローディングの際、読込状況パーセントを表示する方法について 先般、回答して頂きましたプログレスローダーの読込状況の表示についてにて、読込状況表示ができたのですが、肝心な読込状況パーセントが0%指示から一気に100%表示されてしまいます。
読込容量が少ないせいかと思いましたが、デバッグすると一回のプログレスイベントループでは約5%の頻度でロードしており、その際のプログレスバー読込状況ダイナミックテキストは、0%のままでした。 ちなみに読込状況のプログレスバーの構成は前記のダイナミックテキストに加えて、円形のバーを回転させることで、視覚的に表示しており、これはライブラリ上に登録してあり、クラス化してProgressLoaderImageクラスにて使用しています。 このロード状況はEnter_FRAMEイベントにて起こしており、回転バーはうまく回転し、ロード終了とともに表示リストから消去しています。デバッグすると読込状況がonProgressToファンクションに渡されていないような表示も出ます。 一応、予測ですがProgressLoaderクラスのPROGRESS_EVENTにて読み込んでいるにも関わらず、さらにProgressLoaderImageクラス内でENTER_FRAMEイベントを起こすこと自体が、まずいのかなと思ったりしますが、どうでしょうか?何か良案等あればご教授ください。 ProgressLoader.as(ローディング本体クラス) ProgressLoaderImage.as(ローダーバー動作用クラス) |
| 野中文雄 | Åê¹ÆNo.42994 投稿日時: 2009-7-23 2:09 |
ちょんまげら ![]() ![]() 居住地: 東京 投稿: 4166
使用環境:
CS4 .4.11 Vista Home Premium (SP1) |
Re: ローディングの際、読込状況パーセントを表示する方法について 少なくとも、引用のスクリプトからは、受取った引数(「読込状況」?)をそのままスルーしているように見受けられます。また、「ProgressLoaderImageクラス内でENTER_FRAMEイベントを起こすこと」はされておらず、単にイベントリスナーを「登録」しているだけです。
ProgressLoaderImage.onProgressTo()メソッドは、変数_loadPercentをどうやって受取っているのですか。そして、この値はProgressLoaderクラスからどのように更新されているのでしょう? 引用: miyaryuさんは書きました: |
| miyaryu | Åê¹ÆNo.42997 投稿日時: 2009-7-23 10:06 |
常連 ![]() ![]() 居住地: 投稿: 79
使用環境:
windowsXP,flash CS4 |
Re: ローディングの際、読込状況パーセントを表示する方法について 引用:
まず、一番目のご質問ですが、次のとおり修正しました。 イベントリスナーに引数を渡す方法を検索して、ご覧のとおりのコーディングとしました。 すると、コード中のtrace(per)にて値が渡されていることを確認できました。 しかし、やはりステージ上に登録されたプログレスバー読込状況ダイナミックテキストには、反映されません。 デバッグ状況では、per変数に反映されているのに実際の表示は0%から100%に突然切り替わります。 次に二番目のご質問についてですが、下記のように引数pathにパスを渡してやり、以後Loaderクラスを使用してProgressEventにてonProgressメソッドを登録しています。 構想としては、初期設定としてローディングの設定及びプログレスバーの登録を済ませて、あとはProgressEventにてProgressLoaderImageに読み込み状況を渡すということです。 |
| 野中文雄 | Åê¹ÆNo.43007 投稿日時: 2009-7-24 4:40 |
ちょんまげら ![]() ![]() 居住地: 東京 投稿: 4166
使用環境:
CS4 .4.11 Vista Home Premium (SP1) |
Re: ローディングの際、読込状況パーセントを表示する方法について 引数を関数(メソッド)呼出し時に渡す変数と定義するなら、リスナー関数(メソッド)にイベントオブジェクト以外の引数は渡せません。利用されたテクニックは、引数を渡した気分になるだけのものです。それを理解したうえであえてお使いになることは止めませんけど、個人的にはそのメリットを感じません。
第1に、前述の意味での引数ではありませんから、リスナーの呼出し時にその値が変わりません。その問題を避けるために、miyaryuさんは繰返しイベントリスナーの登録をされているのかもしれません。しかし、処理に無駄な負荷が加わるうえ、それよりももっと大きな問題を生んでいます。以下のサンプルスクリプトでステージをゆっくりクリックしながら、その[出力]の変化をよくお確かめください。 参考:「関数クロージャ内のthis参照について」 第2に、名前のない関数をイベントリスナーとして登録すると、その削除が面倒でしょう。 onProgress()メソッドから普通にメソッドonProgressTo()を呼出し、引数を渡したのではダメなのですか?インスタンスspinを回したいなら、その処理だけを1度DisplayObject.enterFrameイベント(定数Event.ENTER_FRAME)のリスナーに登録すればよさそうに思えます。 引用: miyaryuさんは書きました: |
| miyaryu | Åê¹ÆNo.43023 投稿日時: 2009-7-27 14:48 |
常連 ![]() ![]() 居住地: 投稿: 79
使用環境:
windowsXP,flash CS4 |
Re: ローディングの際、読込状況パーセントを表示する方法について 野中さまの示されたスクリプトを実行してみたところ、これは一つのデータ(ここでは読込状況%)を更新するという意味とは異なりますよね。1%、1%2%、1%2%3%・・・と、一度表示した過去のデータまでも計算するハメになってしまい、本当に負担が大きいことが分かりました。
そこで、初心にかえり読込状況%は、普通にメソッドで行い、回転作業はEnterFrameイベントを使うことにしたのですが、やはり読込状況%だけは、0から100に変わるだけです。 にゃあプロジェクトさんのProgressBarコンポーネントに挑戦! (1)にて検証を行ったのですが、私と同様な状況が起こりました。つまり、ローディングバーはスライドするのですが、%表記されないということです。これは、スクリプト上の問題なのでしょうか?それともサーバーとローカルの違いなのでしょうか? 下記コードは、野中さまのおっしゃるような方法に改造しました。 |
| ひろゆき | Åê¹ÆNo.43024 投稿日時: 2009-7-27 16:05 |
ちょんまげら ![]() ![]() 居住地: 大阪密林 投稿: 3492
使用環境:
10.3.9Flex 2 SDK ![]() Pro8.0 Pro7.2FlashPlayer 7.0r24/8.0r24/9.0r115 Safari 1.3.2 Firefox 2.0.0.20 MacOS 9.2.2 Flash 4/5 |
Re: ローディングの際、読込状況パーセントを表示する方法について 引用:
miyaryuさんは書きました: 「[AS3.0] ProgressLoaderクラスに挑戦! (1)」にて、 ProgressBarを制御できていますよ。 「%表記されない」というのは、どこの「%表記」を指しておられるのでしょう? 引用: しかし、やはりステージ上に登録されたプログレスバー読込状況ダイナミックテキストには、反映されません。 テキスト表示に問題があるのではないでしょうか。 このテキストフィールドが参照されていないのでは? ProgressBar上に、テキストフィールドを配置して、そこに表示してやればいいのでは?
|
| miyaryu | Åê¹ÆNo.43033 投稿日時: 2009-7-29 8:38 |
常連 ![]() ![]() 居住地: 投稿: 79
使用環境:
windowsXP,flash CS4 |
Re: ローディングの際、読込状況パーセントを表示する方法について 記載の表現がまずかったですね。
にゃあプロジェクトさんのコーディングが悪いのではということではなくて、私自身のコーディングがということです。申し訳ございません。前述までのとおり、ライブラリにクラスとしてダイナミックテキストを認識させているのですが、読込状況(0%から100%までの読込割合をダイナミックテキストに表示する)が、0%と100%表示はされても半端な状況が(例えば70%)表示されないということです。 もちろんデバッグでは、70%は表示するよう出力されているのです。ProgressBarコンポーネントに挑戦! (1)を自身のアプリケーションで組んでみたとき(そっくりそのまま写して)、読込状況が表示されないという現象が起きたものですから、行き詰まってしまいました。 これは、ローカルにて動作させても普通は表示されるのですよね!?ご教授願います。 |
| ひろゆき | Åê¹ÆNo.43039 投稿日時: 2009-7-29 20:04 |
ちょんまげら ![]() ![]() 居住地: 大阪密林 投稿: 3492
使用環境:
10.3.9Flex 2 SDK ![]() Pro8.0 Pro7.2FlashPlayer 7.0r24/8.0r24/9.0r115 Safari 1.3.2 Firefox 2.0.0.20 MacOS 9.2.2 Flash 4/5 |
Re: ローディングの際、読込状況パーセントを表示する方法について 引用:
miyaryuさんは書きました: ローカルでは、すでにダウンロードされた状態のファイルを読み込むわけですから、 「普通」は、途中の表示はされないと思います。 そのために、ムービープレビュー時に、 [表示]-[ダウンロードのシミュレート]というメニューが用意されています。
|
| miyaryu | Åê¹ÆNo.43041 投稿日時: 2009-7-30 8:53 |
常連 ![]() ![]() 居住地: 投稿: 79
使用環境:
windowsXP,flash CS4 |
Re: ローディングの際、読込状況パーセントを表示する方法について ちょんまげらさん、ありがとうございます。
シミュレートしてみたところ、読込状況が表示され完了することができました。お手数かけて申し訳ございませんでした。 |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
| 投稿するにはまず登録を | |



ログイン




CS4
.4.11
Vista Home Premium (SP1)


Pro8.0
Pro7.2
